use client は境界を宣言する
use client はすべての Client Component に存在するわけではない
use client はServer - Client 間の「境界」を宣言するもの
https://ja.react.dev/reference/rsc/use-client
'use client' でマークされているファイルがサーバコンポーネントからインポートされた場合、互換性のあるバンドラは当該モジュールのインポートを、サーバで実行されるコードとクライアントで実行されるコードの境界として扱います。
宣言されたコンポーネントファイルを Root とした Subtree 全体
したがって、必要な場所で必要に応じて宣言する必要がある
怒られたときに初めて use client を使うぐらいでも良い
e.g. onClick イベントハンドラ
code:tsx
"use client";
export function LikeButton({ photoId }: { photoId: string }) {
return (
<button onClick={() => ...}>いいね</button>
)
}
LikeButton の親コンポーネントは Server Component である
もし親コンポーネントが Client Component ならば、このコンポーネントの use client は不要
#React